package c15;

/**
 * 一个线程对内存的修改，没有同步到内存中，另一个线程看不到
 * 解决方法：
 * 使用volatile关键字
 * 使用锁同步
 */
public class VisibilityDemo {
    public /*volatile*/ static boolean  shutdown = false;

    static class HelloThread extends Thread {
        @Override
        public void run() {
            while (!shutdown) {
                // do nothing
            }
            System.out.println("exit hello");
        }
    }

    public static void main(String[] args) throws InterruptedException {
        HelloThread thread = new HelloThread();
        thread.start();
        Thread.sleep(1000L);
        shutdown = true;
        System.out.println("Main exit");
    }
}
